# 验证用户 　最后一个remember_me.py版本假设用
# 户要么已输入用户名，要么是首次运行该程序。我们应该修改
# 这个程序，以防当前用户并非上次运行该程序的用户。
# 为此，在greet_user() 中打印欢迎用户回来的消息前，询问
# 他用户名是否正确。如果不对，就调用get_new_username()
# 让用户输入正确的用户名。

import json
def get_stored_username():
	"""如果存储了用户名，就获取它。"""
	
	filename = 'username.json'
	try:
		with open(filename) as f:
			username = json.load(f)
	except FileNotFoundError:
		return None
	else:
		return username

def get_new_username():
	"""提示用户输入用户名"""

	username = input("What is your name? ")
	filename = "username.json"
	with open(filename, 'w') as f:
		json.dump(username, f)
	return username

def greet_user():
	"""问候用户，先核查用户名是否正确，再打印欢迎信息"""
	username = get_stored_username()
	if username:
		check_info = input(f"Please check your name:(y/n) {username} ?")
		if  check_info in ['y', 'Y', 'Yes', 'yes']:
			print(f"Welcome back, {username}!")
		else:
			username = get_new_username()
			print(f"We'll remember you when you come back, {username}!")
	else:
		username = get_new_username()
		print(f"We'll remember you when you come back, {username}!")

greet_user()
# 注:多个条件判断同时满足用逻辑与and表示， 有时按位与&也一样可以
